From 3aaacd2e1f184cf31b67952a8e9692d76b7be35b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 8 Apr 2021 12:03:39 +0100 Subject: [PATCH] golang: Fix bindings for golang 1.16. Gbp-Pq: Name 0023-golang-Fix-bindings-for-golang-1.16.patch --- .gitignore | 3 +-- generator/main.ml | 2 +- golang/Makefile.am | 24 +++++++------------ golang/bindtests/go.mod | 4 ++++ golang/examples/Makefile.am | 15 +++++++----- .../examples/{ => create-disk}/create-disk.go | 0 golang/examples/create-disk/go.mod | 4 ++++ golang/examples/inspect-vm/go.mod | 4 ++++ .../examples/{ => inspect-vm}/inspect-vm.go | 0 golang/run-bindtests | 5 ++-- golang/run-tests | 4 +++- golang/src/libguestfs.org/guestfs/go.mod | 4 ++++ m4/guestfs-golang.m4 | 8 ------- run.in | 2 -- 14 files changed, 41 insertions(+), 38 deletions(-) create mode 100644 golang/bindtests/go.mod rename golang/examples/{ => create-disk}/create-disk.go (100%) create mode 100644 golang/examples/create-disk/go.mod create mode 100644 golang/examples/inspect-vm/go.mod rename golang/examples/{ => inspect-vm}/inspect-vm.go (100%) create mode 100644 golang/src/libguestfs.org/guestfs/go.mod diff --git a/.gitignore b/.gitignore index 7a4696b9..d43258b8 100644 --- a/.gitignore +++ b/.gitignore @@ -301,10 +301,9 @@ Makefile.in /gobject/guestfs-gobject.3 /gobject/libguestfs-gobject-1.0.vapi /gobject/stamp-guestfs-gobject.pod -/golang/bindtests.go +/golang/bindtests/bindtests.go /golang/examples/guestfs-golang.3 /golang/examples/stamp-guestfs-golang.pod -/golang/pkg /haskell/Bindtests /haskell/Bindtests.hs /haskell/Guestfs010Load diff --git a/generator/main.ml b/generator/main.ml index c2e849e1..1e608798 100644 --- a/generator/main.ml +++ b/generator/main.ml @@ -301,7 +301,7 @@ Run it from the top source directory using the command output_to "golang/src/libguestfs.org/guestfs/guestfs.go" Golang.generate_golang_go; - output_to "golang/bindtests.go" + output_to "golang/bindtests/bindtests.go" Bindtests.generate_golang_bindtests; output_to "gobject/bindtests.js" diff --git a/golang/Makefile.am b/golang/Makefile.am index b9716118..ec8ad23a 100644 --- a/golang/Makefile.am +++ b/golang/Makefile.am @@ -26,28 +26,24 @@ source_files = \ generator_built = \ $(source_files) \ - bindtests.go + bindtests/bindtests.go EXTRA_DIST = \ src/libguestfs.org/guestfs/.gitignore \ + src/libguestfs.org/guestfs/go.mod \ $(generator_built) \ + bindtests/go.mod \ config-test.go \ run-bindtests \ run-tests if HAVE_GOLANG -golangpkgdir = $(GOROOT)/pkg/$(GOOS)_$(GOARCH)/$(pkg) -golangsrcdir = $(GOROOT)/src/pkg/$(pkg) - -golangpkg_DATA = \ - pkg/$(GOOS)_$(GOARCH)/$(pkg).a - -pkg/$(GOOS)_$(GOARCH)/$(pkg).a: src/$(pkg)/guestfs.go - -[ $(srcdir) != $(builddir) ] && ln -s $(abs_srcdir)/src $(builddir)/src - $(top_builddir)/run $(GOLANG) install $(pkg) - -golangsrc_DATA = $(source_files) +all-local: $(source_files) + -[ "$(srcdir)" != "$(builddir)" ] && \ + ln -s $(abs_srcdir)/src $(builddir)/src + cd src/$(pkg) && \ + $(abs_top_builddir)/run $(GOLANG) build TESTS_ENVIRONMENT = pkg=$(pkg) $(top_builddir)/run $(VG) # --test @@ -56,7 +52,3 @@ TESTS = run-bindtests run-tests endif CLEANFILES += src/$(pkg)/*~ - -clean-local: - -[ $(srcdir) != $(builddir) ] && rm -f $(builddir)/src - rm -rf pkg diff --git a/golang/bindtests/go.mod b/golang/bindtests/go.mod new file mode 100644 index 00000000..64b27c5a --- /dev/null +++ b/golang/bindtests/go.mod @@ -0,0 +1,4 @@ +module main + +replace libguestfs.org/guestfs => ../src/libguestfs.org/guestfs +require libguestfs.org/guestfs v1.0.0 diff --git a/golang/examples/Makefile.am b/golang/examples/Makefile.am index 53493e45..68d8e5d3 100644 --- a/golang/examples/Makefile.am +++ b/golang/examples/Makefile.am @@ -19,8 +19,10 @@ include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ LICENSE \ - create-disk.go \ - inspect-vm.go \ + create-disk/go.mod \ + create-disk/create-disk.go \ + inspect-vm/go.mod \ + inspect-vm/inspect-vm.go \ guestfs-golang.pod man_MANS = guestfs-golang.3 @@ -28,13 +30,14 @@ noinst_DATA = $(top_builddir)/website/guestfs-golang.3.html guestfs-golang.3 $(top_builddir)/website/guestfs-golang.3.html: stamp-guestfs-golang.pod -stamp-guestfs-golang.pod: guestfs-golang.pod create-disk.go inspect-vm.go - $(PODWRAPPER) --path $(srcdir) \ +stamp-guestfs-golang.pod: guestfs-golang.pod \ + create-disk/create-disk.go inspect-vm/inspect-vm.go + $(PODWRAPPER) \ --section 3 \ --man guestfs-golang.3 \ --html $(top_builddir)/website/guestfs-golang.3.html \ - --verbatim $(srcdir)/create-disk.go:@EXAMPLE1@ \ - --verbatim $(srcdir)/inspect-vm.go:@EXAMPLE2@ \ + --verbatim $(srcdir)/create-disk/create-disk.go:@EXAMPLE1@ \ + --verbatim $(srcdir)/inspect-vm/inspect-vm.go:@EXAMPLE2@ \ --license examples \ $< touch $@ diff --git a/golang/examples/create-disk.go b/golang/examples/create-disk/create-disk.go similarity index 100% rename from golang/examples/create-disk.go rename to golang/examples/create-disk/create-disk.go diff --git a/golang/examples/create-disk/go.mod b/golang/examples/create-disk/go.mod new file mode 100644 index 00000000..0ec07872 --- /dev/null +++ b/golang/examples/create-disk/go.mod @@ -0,0 +1,4 @@ +module main + +replace libguestfs.org/guestfs => ../../src/libguestfs.org/guestfs +require libguestfs.org/guestfs v1.0.0 diff --git a/golang/examples/inspect-vm/go.mod b/golang/examples/inspect-vm/go.mod new file mode 100644 index 00000000..0ec07872 --- /dev/null +++ b/golang/examples/inspect-vm/go.mod @@ -0,0 +1,4 @@ +module main + +replace libguestfs.org/guestfs => ../../src/libguestfs.org/guestfs +require libguestfs.org/guestfs v1.0.0 diff --git a/golang/examples/inspect-vm.go b/golang/examples/inspect-vm/inspect-vm.go similarity index 100% rename from golang/examples/inspect-vm.go rename to golang/examples/inspect-vm/inspect-vm.go diff --git a/golang/run-bindtests b/golang/run-bindtests index 483daa20..e79bb07a 100755 --- a/golang/run-bindtests +++ b/golang/run-bindtests @@ -18,6 +18,7 @@ set -e -$GOLANG run $srcdir/bindtests.go > bindtests.tmp -diff -u $srcdir/../bindtests bindtests.tmp +cd $srcdir/bindtests +$GOLANG run bindtests.go > bindtests.tmp +diff -u $srcdir/../../bindtests bindtests.tmp rm bindtests.tmp diff --git a/golang/run-tests b/golang/run-tests index 6f01c848..997184d9 100755 --- a/golang/run-tests +++ b/golang/run-tests @@ -18,4 +18,6 @@ set -e -$GOLANG test $pkg +cd src/$pkg + +$GOLANG test diff --git a/golang/src/libguestfs.org/guestfs/go.mod b/golang/src/libguestfs.org/guestfs/go.mod new file mode 100644 index 00000000..31cf37ee --- /dev/null +++ b/golang/src/libguestfs.org/guestfs/go.mod @@ -0,0 +1,4 @@ +module libguestfs.org/guestfs + +// First version of golang with working module support. +go 1.13 \ No newline at end of file diff --git a/m4/guestfs-golang.m4 b/m4/guestfs-golang.m4 index d5e6aafa..5f011ffa 100644 --- a/m4/guestfs-golang.m4 +++ b/m4/guestfs-golang.m4 @@ -26,14 +26,6 @@ AS_IF([test "x$enable_golang" != "xno"],[ AC_MSG_CHECKING([if $GOLANG is usable]) AS_IF([$GOLANG run $srcdir/golang/config-test.go 2>&AS_MESSAGE_LOG_FD],[ AC_MSG_RESULT([yes]) - - # Substitute some golang environment. - GOOS=`$GOLANG env GOOS` - GOARCH=`$GOLANG env GOARCH` - GOROOT=`$GOLANG env GOROOT` - AC_SUBST([GOOS]) - AC_SUBST([GOARCH]) - AC_SUBST([GOROOT]) ],[ AC_MSG_RESULT([no]) AC_MSG_WARN([golang ($GOLANG) is installed but not usable]) diff --git a/run.in b/run.in index 10844a65..3c01ebe1 100755 --- a/run.in +++ b/run.in @@ -178,8 +178,6 @@ export LUA_CPATH # For golang. export GOLANG="@GOLANG@" -prepend GOPATH "$b/golang" -export GOPATH if [ -z "$CGO_CFLAGS" ]; then CGO_CFLAGS="-I$s/include" else -- 2.30.2